(function ($) {
    var field = {};

    var table = customTable({
        container: "#tb_base"
        ,url: '/dicts'
        ,columns: [
            {radio: true}
            ,{title: '序号', align: 'center', formatter: function (value, row, index) {
                    return index + 1;
                }}
            ,{field: 'id', align: 'center',  title: '字典ID' }
            ,{field: 'pid', visible: false, title: '父级ID'}
            ,{field: 'gid', visible: false, title: '祖级ID'}
            ,{field: 'roleSessionName', title: '应用名称'}
            ,{field: 'fieldCode', title: '字段名称'}
            ,{field: 'itemName', title: '选项名称'}
            ,{field: 'itemValue', title: '字典值'}
            ,{field: 'remark', title: '备注'}
            ,{field: 'rank', title: '数据层级'}
            ,{field: 'updateTime',title: '最近更改时间'}
        ]
        ,where: field
        ,clickToSelect: true
    });

    // 提交请求消息
    function ajax(params) {
        $.ajax({
            type: params.from_type,
            url: "/dicts/" + params.id,
            cache: false,
            data: JSON.stringify(params),
            dataType: "json",
            contentType: 'application/json;charset=utf-8',
            success : function (data) {
                layer.msg(data.msg, {icon: 6});
                $("#tb_base").bootstrapTable('refresh');
                if (data.code == "0" || data.code == 0) {
                    $('#updateObjModal').modal('hide');
                }
            },
            error: function (E) {
                console.info(E);
            }
        });
    }
    // 根据条件重载列表
    $('.table-search').click(function (data) {
        // field = getParams(".input-group");
        $(".input-group input[type='text']").each(function(j,item){
            field[item.name]=item.value;
        });
        $("#tb_base").bootstrapTable('refresh');
    });
    // 清除表单搜索条件
    $('.reset-search').click(function () {
        reset(".input-group");
    });
    // 监听新增事件
    $("#btn_add").click(function (data) {
        reset("#updateObjForm");
        // 新增时需要清楚表单内容，否则可能会存有修改时的数据
        $("#from_type").val("POST");
    });
    // 监听编辑事件
    $("#btn_edit").click(function (data) {
        var row = $("#tb_base").bootstrapTable('getSelections')[0];
        var modal = $(this).attr("data-target");
        if (row == null) {
            layer.msg("请先选择数据", {icon: 6});
            return false;
        }
        // 填充编辑标识，表单提交方式
        $("#from_type").val("PUT");
        // 填充原始数据
        $.each(row,function (key,value) {
            $(modal + " #" + key).val(value);
        })
    });
    // 监听删除事件
    $("#btn_delete").click(function () {
        var row = $("#tb_base").bootstrapTable('getSelections')[0];
        if (row == null) {
            layer.msg("请先选择数据", {icon: 6});
            return false;
        }
        $.confirm({
            title: '删除确认',
            content: '确认删除字典数据？！',
            buttons: {
                confirm: {
                    text: '确定删除',
                    btnClass: 'btn btn-danger',
                    action: function () {
                        var params = {};
                        params.from_type = "DELETE";
                        params.id = row.id;
                        ajax(params);
                    }
                }
                ,cancel: {
                    text: '取消',
                    btnClass: 'btn btn-secondary',
                    action: function () {
                        // $.alert('取消!');
                    }
                }
            }
        });
    });
    // 监听提交事件
    $(".obj-btn").click(function (data) {
        var params = getParams(".site-form");
        params.delFlag=0;
        params.rank=0;
        ajax(params);
    });
    // 监听下拉树事件（父级菜单消息）
    $("#updateObjForm :input[name='selectCatalog']").click(function (data) {
        alert("开启下拉");
    });
})(jQuery);